In a cloud computing environment, allowing machines (virtual and physical) to be put to sleep without loss of requests presents a challenge. Existing approaches include, for example, putting machines to sleep except for the network interface, and upon receiving a special packet, the network interface wakes up the machine.
However, such approaches require some form of centralized control or a workload dispatcher that controls which machines are active and which are inactive. In a more decentralized environment such as, for example, a cloud computing environment, such a dispatcher will often not exist, especially across different users.
Existing approaches can also include paging idle memory out and running idle VMs at a lower central processing unit (CPU) priority. However, with such approaches, each VM still uses memory and a percentage of CPU while idling.